package com.freedy.dataStructure.sort;

import java.util.Arrays;

/**
 * 冒泡排序
 * @author Freedy
 * @date 2021/3/18 18:08
 */
public class BubbleSort {

    public static void main(String[] args) {
        //20个随机数
        int[] arr={368,93,284,507,204,620,331,573,910,977,
                711,305,825,438,698,49,868,241,598,737};
        sort(arr);
        System.out.println(Arrays.toString(arr));
    }

    public static void sort(int[] arr){
        boolean exchangeFlag=false;
        for (int i = arr.length-1; i >= 0; i--) {
            for (int j = 0; j < i; j++) {
                if (arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                    exchangeFlag=true;
                }
            }
            if (!exchangeFlag){
                //在上一轮交换中，没有发生一次交换。证明已经排序完成可以提前退出
                break;
            }else {
                //重置标志位进行下一轮循环
                exchangeFlag=false;
            }
        }
    }
}
